package controllers;

import play.*;
import play.mvc.*;

import java.util.*;

import models.*;

public class Application extends Controller {

    public static void index() {
    	List<Pizza> pizzas = Pizza.findAll();
    	List<Complemento> complementos = Complemento.find("byTipo", "Ensalada").fetch();
    	List<Complemento> entradas = Complemento.find("byTipo", "Entrada").fetch();
    	List<Complemento> postres = Complemento.find("byTipo", "Postre").fetch();
    	
//    	pizzas = pizzas.subList(0, 6);
    	String nombre = session.get("nombre");
        render(nombre, pizzas, complementos,entradas,postres);
        
        System.out.println("califcacion Analisis 2");
        System.out.println("Testing SVN repository");
    }
    
    public static void agregarOrden(Long id, int tipo) {
    	
    	String email = session.get("email");
    	Usuario usuario = Usuario.find("email = ?",email).first();
    	Orden ordenActiva = null;
    	
    	for (Orden orden : usuario.getOrdenes()) {
    		if (orden.isActivo()) {
    			ordenActiva = orden;
    			break;
    		}
    	}
    	if (ordenActiva == null) {
    		ordenActiva = new Orden();
    		ordenActiva.setActivo(true);
    		ordenActiva.setUsuario(usuario);
    	}
    	
    	switch (tipo) {
		case 1:
			Pizza pizza=Pizza.findById(id);
			ordenActiva.getPizzas().add(pizza);
			break;
		case 0:
			Complemento complemento = Complemento.findById(id);
			ordenActiva.getComplementos().add(complemento);
			break;
		}
    	ordenActiva.save();
    	orden();
    }
    
    public static void orden() {
    	
    	String email = session.get("email");
    	Usuario usuario = Usuario.find("email = ?",email).first();
    	
    	Orden ordenActiva = null;
    	
    	for (Orden orden : usuario.getOrdenes()) {
    		if (orden.isActivo()) {
    			ordenActiva = orden;
    			break;
    		}
    	}
    	
    	render(ordenActiva);
    }

    public static void procesar() {
    	String email = session.get("email");
    	Usuario usuario = Usuario.find("email = ?",email).first();
    	
    	Orden ordenActiva = null;
    	
    	for (Orden orden : usuario.getOrdenes()) {
    		if (orden.isActivo()) {
    			ordenActiva = orden;
    			break;
    		}
    	}
    	if (ordenActiva != null) {
	    	ordenActiva.setActivo(false);
	    	ordenActiva.save();	
    	}
    	index();
    }

}